package com.shopping.service.Impl;

import com.google.common.collect.Lists;
import com.shopping.service.IFileService;
import com.shopping.util.FTPUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;
@Service("iFileService")
public class FileServiceImpl implements IFileService {
    private Logger logger= LoggerFactory.getLogger(FileServiceImpl.class);
    public String upload(MultipartFile file,String path){
        //获取上传文件名,文件名以及扩展名
    String fileName=file.getOriginalFilename();

    //获取文件扩展名
    String fileExtensionName=fileName.substring(fileName.lastIndexOf(".")+1);
    //防止文件名重复
    String uploadFileName= UUID.randomUUID().toString()+"."+fileExtensionName;
    logger.info("开始上传文件，上传的文件名叫:{}，上传的路径:{},新文件名:{}",fileName,path,uploadFileName);
        File file1Dir=new File(path);
            //判断是否文件夹是否存在
        if (!file1Dir.exists()){
            //设置写入权限
            file1Dir.setWritable(true);
            //创建文件夹
            file1Dir.mkdirs();
        }
       File targetFile=new File(path,uploadFileName);
      try {
          file.transferTo(targetFile);
          //上传文件成功
          //todo 将targetFile上传到我们的FTP服务器上
          FTPUtil.uploadFile(Lists.newArrayList(targetFile));
          //已经上传到FTP服务器上了
          //todo 上传完成之后，删除upload下面的文件
          targetFile.delete();
      }catch (IOException e){
    logger.info("上传文件异常",e);
    return null;
      }
    return targetFile.getName();
    }

   /* public static void main(String[] args) {
        String fileName="abc.jsp";
        String files="abc.jsp";
        //获取文件扩展名
        fileName=fileName.substring(fileName.lastIndexOf(".")+1);
        files=files.substring(files.lastIndexOf(".")+1);
        if (fileName.equals(files)){
            System.out.println("文件名相同");

        }
    }*/
}
